/**
 * @description 		监听函数返回值是否有变化
 * @param fn  			包装的方法
 * @param changeFn  改变的方法
 * @returns 返回包装的函数
 */
export function useWrapWatch<T>(
	fn: (...params: any[]) => T,
	changeFn: (newVal: T, oldVal: T | null) => any
): (...params: any[]) => T {
	let oldVal: T | null = null
	return (...params: any[]) => {
		const newVal = fn.apply(params)
		if (oldVal !== newVal) {
			/* 数据改变触发逻辑 */
			const tempOldVal = oldVal
			oldVal = newVal
			changeFn(newVal, tempOldVal)
		}
		return newVal
	}
}
